home *** CD-ROM | disk | FTP | other *** search
/ Software Explosion / Software Explosion (Fore-Matt Home Computing)(1996).iso / games / windows / uu161 / uudevkit.txt < prev    next >
Text File  |  1993-06-24  |  40KB  |  995 lines

  1. Ultimate Universe Third Party Development Kit for 1.60        May 11, 1993
  2. ======================================================
  3. Ultimate Universe Copyright (C) 1993, TopherSoft Engineering
  4.  
  5.  
  6. I have had a lot of fun over the years developing Ultimate Universe. And a
  7. lot of people have contributed a lot of very good ideas and suggestions to
  8. making this an enjoyable program.
  9.  
  10. With that in mind I am releasing the file structures to the various game
  11. files in the hopes that some person or persons may wish to create add ons
  12. in the form of Additional Daily Suppliments or Editors or what not.
  13.  
  14. I am also pretty easy to reach by phone and don't mind answering questions.
  15. My number is 508-693-7396. This number is a Searchlight BBS running at 14400
  16. bps.
  17.  
  18. All information herein applies to version 1.60.
  19.  
  20. Ultimate Universe is written in BC++ 3.1 using only the C aspect of the
  21. compiler. The file formats will be displayed as C structures.
  22.  
  23. This text file contains:
  24.  
  25.       The Structures for GALAXY.UU, LINK.UU, PORT.UU, PLANET.UU,
  26.                  SPY.UU, TALLY.UU, CUBE.UU, DEVICE.UU & SHIP.UU.
  27.       A routine for staying compatable with FILE.DIR.
  28.       A routine for accessing CONFIG.UU and what it means.
  29.           Details on Ultimate Universe Interactive (UUI) activation.
  30.  
  31.  
  32. ==============================================================================
  33. /***************
  34.  *
  35.  * GALAXY.UU
  36.  *
  37.  ***************/
  38.  
  39. The Galaxy File contains most of the information about things contained in
  40. the galaxy. It contains one record for each sector of the universe. It also
  41. contains an opening zeroth sector record which contains the following data:
  42.  
  43.       Record Zero:
  44.       GALAXY.PORTER       : Contains the Sector the Ultimate Unifier is in.
  45.       GALAXY.WARP_SHIELD  : The Age of the Universe in Days.
  46.       GALAXY.ORM          : The Current Maximum Number of Sectors.
  47.  
  48. On additional records each sector is it's own record number.
  49.  
  50. Galaxy's structure is as follows:
  51.  
  52. typedef struct
  53.     begin
  54.        int   SECTOR;        : The Sector Number (and Record Number)
  55.        LOBJ  FIGHT;         : NUM is the number of Attack Drones
  56.                 : OWN is the owner's record number
  57.                       if PRG is 2 team's record number
  58.                 : PRG the programming mode
  59.        LOBJ  MINE;          : NUM is the number of Sector Mines
  60.                 : OWN is the owner's record number
  61.                       if PRG is 2 team's record number
  62.                 : PRG the programming mode
  63.        long  PORT;          : The file offset in the PORT.UU file
  64.                   for the port in this sector. Zero if none.
  65.        long  PLANET;        : The file offset in the PLANET.UU file
  66.                   for the planet in this sector. Zero if none.
  67.        char  PLANET_ID;     : owner's record number.
  68.                 : Set to 50 for independent
  69.                 : Set to 53-55 for Meanderer thru Destroyer.
  70.        char  REPLICATOR;    : Mine Replicator. Mine Count is increased
  71.                   by MINE.NUM/REPLICATOR.
  72.        int   PORTER;        : Sector Destination of Teleport Satellite
  73.        long  PORTER_CLOAK;  : Cloaking Energy of Teleport Satellite
  74.        int   WARP_SHIELD;   : Ergs of Warp Shielding
  75.        char  DAMPER;        : Owner Id of Sector Damper
  76.        char  LAST_SHIP;     : Owner Id of Last Ship in Sector
  77.        int   ORM;           : ORM Link Sector Number
  78.        char  BLACKHOLE;     : 1 = Holographic Black Hole
  79.                 : 2 = Wandering Black Hole
  80.                 : 3 = Man made Black Hole
  81.        char  CABAL_REPORT;  : Whether the Cabal in this Sector have been
  82.                   reported.
  83.        char  DECOY;         : Ship ID of Holographic Ship Decoy
  84.        long  DECOY2;        : File offset for Holographic Planet Decoy
  85.        long  DECOY_FIGHT;   : Drone display for Holographic Ship Decoy
  86.        char  MESSAGE_BEACON;: 1 = yes there is a message for this sector.
  87.        char  SPY_WARD;      : Number of Spy Wards.
  88.        char  HOMING_TRAP;   : If set to 127 an open trap is waiting to
  89.                   grab a Ship ID.
  90.                   If set to 0 no homing trap.
  91.                   Else it is set to a Ship ID.
  92.        int   PLATFORM;      : Number of Platform Device Bay Missiles.
  93.        char  ASNARE;        : Ship Id of Autopilot Snare Owner
  94.        char  TRIPWIRE;      : Ship Id of Passage Tripwire Owner.
  95.        char  FLASHWIRE;     : Ship Id of Flashwire Owner.
  96.        int   REFLECT;       : Sector to Display Sector As.
  97.                   (See Sector Reflector)
  98.        char  TOLLSTATION;   : Ship Id of owner of Tollstation.
  99.        long  TOLLFEE;       : Amount to Charge for safe passage.
  100.        long  TOLLCOFFER;    : Total Amount Currently Collected.
  101.        char  TOLLTYPE;      : Type of Tollstation.
  102.        char  NAGATOR;       : Ship Id of Owner of Overspace Navigation
  103.                   Nagator
  104.        char  POPPER;        : Ship Id of owner of Sector Popper.
  105.        char  SETTINGS;      : obsolete, not used.
  106.        char  LINKSUPPRESSER;: Ship Id of owner of Warp Link Suppressor.
  107.        char  DELACOOS;      : Ship Id of owner of Delacoos Drive Disruptor.
  108.        char  MADNESS;       : Level of Space Madness Virus Present.
  109.        char  EXPLODE_DECOY;    : Id Explosive Decoy is Copying
  110.                      Uses DECOY_FIGHT for number of drones.
  111.        char  MINE_LAUNCHER;    : Mines/MINE_LAUNCHER are launched into
  112.                      another Sector during Event.
  113.        int   MINE_DESTINATION; : This is the Sector the Mines are Launched
  114.                      to. If Zero destination is random.
  115.        char  DAMPER_TRIPWIRE;  : Id of Owner of Tripwire
  116.        int   HYPER_THIEF;      : Cube Number of Hyper Thief
  117.        char  HYPERSWAP_TRIGGER;: Owner ID of Hyperswap Trigger
  118.        char  TOLLTEAM;         : 1 = team tollbooth, zero otherwise.
  119.        char  SNITCH;           : Ship ID Snitch is logged on.
  120.        char  SNITCH_LIMITED;   : 1 if Limited, zero otherwise.
  121.        char  DIM_CATAPULT;     : Not yet used.
  122.        char  misc4;
  123.        int   misc5;
  124.        long  misc6;
  125.        float misc7;
  126.     end FILE1;
  127.  
  128. typedef struct
  129.     begin
  130.        long NUM;
  131.        char OWN;
  132.        char PRG;
  133.     end LOBJ;
  134.  
  135.  
  136. ==============================================================================
  137. /****************
  138.  *
  139.  *  LINK.UU
  140.  *
  141.  ****************/
  142.  
  143. The Galaxya file simply contains the eight potential warp links that each
  144. sector has. A value of zero indicates no warp link. A sector number is the
  145. sector number that this sector is warp linked to. A negative value is a
  146. phantom link indicating that a sector (the absolute value of the that number)
  147. used to be connected to that sector.
  148.  
  149. LINK.UU's structure is as follows:
  150.  
  151.  
  152. typedef struct
  153.     begin
  154.        int LINK[8];
  155.     end FILE1A;
  156.  
  157.  
  158.  
  159.  
  160.  
  161. ==============================================================================
  162.  
  163. /***************
  164.  *                      
  165.  *  PORT.UU
  166.  *
  167.  ***************/
  168.  
  169. The Port File contains information about the port in a sector.
  170. The first record is a dummy blank record and the second record is the
  171. Procurator. If there is a port in a sector the field GALAXY.PORT will
  172. contain the offset to the port record, such that:
  173.         "fseek(portstream, GALAXY.PORT, 0)"
  174. will position the record pointer at the the start of the port record.
  175. If GALAXY.PORT is zero then no port exists.
  176.  
  177. The structure of the port file is as follows:
  178.  
  179. typedef struct
  180.     begin
  181.     char  NAME[30];   : The name of the port.
  182.     char  TYPE;       : The type of the port 
  183.                 1  - sells Ore, 2 - Organics, etc.
  184.                 11 - Sol, 12 - Mars, etc.
  185.                 21 - Procurator.
  186.     long  TRADE[5];   : The number of units of cargo available for 
  187.                 buying or selling per type of cargo.
  188.     float RATES[5];   : The current rate for one unit of cargo per type.
  189.     char  SELL[5];    : Obsolete, no longer in use.
  190.     long  SWAP;       : Used for Procurator Movement.
  191.     int   misc1;      : for future use.
  192.     char  MADNESS;    : Level of Space Madness Virus Present.
  193.     long  COFFER;     : Not used yet (for franchise)
  194.     long  misc2;
  195.     long  misc3;
  196.     char  misc4;
  197.     float misc5;
  198.     end FILE6;
  199.  
  200. =============================================================================
  201. /***************
  202.  *                           1 = Wanderer
  203.  *  PLANET.UU                2 = Watcher
  204.  *                           3 = Destroyer
  205.  ***************/
  206.  
  207. The Planet File contains information about the planet in a sector.
  208. The first record is a dummy blank record. The first thru third records
  209. contain the Taakian Wandering planets (Record 1 = Meanderer, 2 = Watcher,
  210. 3 = Destroyer).
  211. If there is a planet in a sector the field GALAXY.PLANET will contain the
  212. offset to the planet record, such that:
  213.         "fseek(planetstream, GALAXY.PLANET, 0)"
  214. will position the record pointer at the the start of the planet record.
  215. If GALAXY.PLANET is zero then no planet exists.
  216. There is no way to trace from the Planet file what sector the planet is in.
  217.  
  218. The structure of the planet file is as follows:
  219.  
  220.  
  221. typedef struct
  222.     begin
  223.     char  NAME[30];       : The Name of the Planet
  224.     char  SETTINGS;       : Each bit has meaning
  225.                   :  bit 0 on = Planetary Defenses on. 
  226.                   :  bit 1 on = Team Member may land.
  227.                   :  bit 2 on = Devices 1st Defense Strategy
  228.                   :  bit 3 on = Shuttle Warp Shielding to Surface.
  229.                   :  bit 4 on = Planet infected by Organics virus.
  230.                   :  bit 5 on = Major Cabal Planet
  231.     long  CARGO[12];      : Amount of cargo per catagory.
  232.     long  PRODUCTION[12]; : Amount of production per catagory.
  233.     int   DEVICE;         : Device ID of Planetary Device.
  234.     int   DEVICE_VAR;     : Variable 1 for Planetary Device.
  235.     int   DEVICE_VAR2;    : Variable 2 for Planetary Device.
  236.     int   HYPERSECTOR;    : Sector Planet will return to from Hyper 
  237.                 storage.
  238.     char  HYPERID;        : Hyper Storage Refernce Number.
  239.     char  MADNESS;        : Level of Space Madness Virus Prsent.
  240.     char  TYPE;           : Planet Type. 0 = Breeder. 1 = Warrior.
  241.     int   misc2;          : for future use.
  242.     long  misc3;
  243.     long  misc4;
  244.     long  misc5;
  245.     long  misc6;
  246.     end FILE7;
  247.  
  248.  
  249. ==============================================================================
  250. DEVICE.UU
  251. typedef struct
  252.     begin
  253.        char  NAME[34];    : Name of Device
  254.        long  COST;        : Price of Device
  255.        int   ID;          : Device Number
  256.        int   VAR;         : Device Variable 1
  257.        int   VAR2;        : Device Variable 2
  258.        int   USE;         : Is this a Usable Device? 0 = No, 1 = Yes.
  259.        unsigned char      : Amounts Available for Purchase by Dimension.
  260.          AMT[10];
  261.     end FILE3;
  262.  
  263.  
  264. ==============================================================================
  265. SPY.UU
  266.  
  267. The Spy file contains scant information about the detection of Attack Drones,
  268. Sector Mines and Planets in a given sector.
  269. Just like the GALAXY file there is one record for each sector and a dummy
  270. zeroth record.
  271.  
  272. If any field is non zero it means that that object has been located by the 
  273. Spies.
  274.  
  275. The spy structure is as follows:
  276.  
  277. typedef struct
  278.     begin
  279.        char  FIGHT;   : Owner ID of Attack Drones (+56 for Team Ownership).
  280.        char  MINE;    : Owner ID of Sector Mines  (+56 for Team Ownership).
  281.        char  PLANET;  : Owner ID of Planet.
  282.     end SPYFORM;
  283.  
  284. ==============================================================================
  285. CUBE.UU
  286.  
  287. The Cube file contains the information of the contents of the Hyper Cubes &
  288. Swaps. Record zero is a dummy record, records 1 thru MAXPLAYER are the Team
  289. Cubes and any records after that are pointed to by record numbers stored in
  290. varaible 1 of the Hyperdevice.
  291. Number of Device Bays in the cube is held in the Hyper Device not the file.
  292.  
  293. The structure of the Cube File is as follows:
  294.  
  295. typedef struct
  296.    begin
  297.    int  OWNER;      : Owner ID of Hyper Cube.
  298.             : Not really used may be incorrect in some situations.
  299.    int  DEVICE[20]; : Device ID per bay.
  300.    int  VAR[20];    : Device variable 1 per bay.
  301.    int  VAR2[20];   : Device variable 2 per bay.
  302.    char NAME[20];   : Name of the Cube (For HyperSwaps).
  303.    end CUBEFORM;
  304.  
  305. ==============================================================================
  306. The Tally File is sort of a nothing file but with a lot of functions it's use
  307. can speed up applications. This file is simply a one character mark indicating
  308. whether there are Attack Drones, Sector Mines or Planets in a Sector.
  309.  
  310. This file contains a dummy zeroth record and then one character for each 
  311. sector. 
  312.  
  313. typedef struct
  314.    begin
  315.    char MARK;     : If Mark equals 1 there are Attack Drones or Sector Mines
  316.             or a Planet in this sector.
  317.    end TALLYFORM;
  318.  
  319. ==============================================================================
  320. /**********************
  321.  *                    *
  322.  *  SHIP.UU           *
  323.  *                    *
  324.  **********************/
  325.  
  326. As it's name implies the ship file contains all the information about the
  327. condition and components of a ship. Like the GALAXY file this file contains
  328. a dummy zeroth record.
  329. In the zeroth record:
  330.    SHIP.TODAY contains the maximum number of players (MAXPLAYER).
  331.    SHIP.SDAMAGE contains the file format version number.
  332.         To date that is '0'   for pre-140 file format and
  333.                 '140' for version 140 file format.
  334.                 '160' for version 160 file format.
  335. Three extra records exist at the end of the file.
  336. These are mostly used to house the names of the computer antagonists.
  337. Record Number MAXPLAYER:   contains the Federation.
  338. Record Number MAXPLAYER+1: contains the Cabal.
  339. Record Number MAXPLAYER+2: contains the Anti-Establings.
  340. None of the information below (except Name) applies to those records.
  341.  
  342. The structure of the Ship file is as follows:
  343.  
  344. typedef struct
  345.   begin
  346.   char  NAME[38];         : The name of the ship.
  347.   char  TODAY;            : Number of sessions used that day.
  348.   int   SECTOR;           : The sector the ship is in.
  349.               : Set to Zero indictates a dead ship.
  350.   char  ID;               : Owner ID and record number.
  351.   char  TEAM;             : Team ID ship belongs to. Zero means no team.
  352.   int   DAYS;             : Number of days the ship has survived.
  353.   int   CARGO[5];         : Amount of cargo units per type
  354.   long  ITEM[13];         : Amounts of supplies per item.
  355.               : See below for a list of items.
  356.   int   DEVICE[32];       : Device ID per device bay.
  357.   int   DEVICE_VAR[32];   : Device Variable 1 per device bay.
  358.   int   DEVICE_VAR2[32];  : Device Variable 2 per device bay.
  359.   int   BOARDNO;          : Registration Number of Game ship was created under.
  360.               : This is zero for unregistered versions.
  361.               : May vary from Game ID number if ship is Imported.
  362.   int   COUNT;            : A unique number when combined with BOARDNO that
  363.               : can differentate that ship from all other ships
  364.               : anywhere.
  365.   char  PLAYER[25];       : The Players login name. 
  366.               : Set to NULL indictates a free area to create a
  367.               : new ship.
  368.   char  BAYS;             : The number of device bays.
  369.   long  SECONDS;          : Number of seconds remaining that day.
  370.   char  INACTIVE;         : Number of days on inactivity.
  371.   char  DIMENSION;        : Dimension the Ship is currently in.
  372.   long  FINES;            : Amount of Federation Fines accrued.
  373.   long  DEBT;             : Amount of Federation Debt accrued.
  374.   int   SDAMAGE;          : Number of seconds of sensor damage.
  375.   long  MINES_KILLED;     : Number of Cabal Sector Mines destroyed.
  376.   long  CABAL_KILLED;     : Number of Cabal Attack Drones destroyed.
  377.   char  FED_HOSTILE;      : Set to non zero if ship has been declared an 
  378.               : enemy of the Federation.
  379.   char  COMPUTER;         : Set to non zero if ship's computer is damaged.
  380.   char  MADNESS;          : Indicts Level of Space Madness Virus Present.
  381.   int   IMPORT;           : Importation Copy Number;
  382.   char  EXPERT_LEVEL;     : Toggle (0 or 1) sets expert display mode.
  383.   long  FIRST_DEVICE;     : The maximum amount for free device at port 6.
  384.               : Set to zero after use.
  385.   long  SESSION;          : The amount seconds left in the current session.
  386.   char  ENHANCEMENT;      : Number of Ship Enhancement. A=1, B=2, etc.
  387.   int   TO_UPS;           : Number of Device ordered thru U.P.S.
  388.   int   SENSORS[8];       : Device Numbers of Devices in Forward Sensor Array
  389.   long  misc;
  390.   long  misc1;
  391.   long  misc2;
  392.   long  misc3;
  393.   long  misc4;
  394.   end FILE2;
  395.  
  396. Following is a break down of the Cargo and Item arrays:
  397.  
  398.  
  399.  CARGO[0]  = ore
  400.  CARGO[1]  = organics
  401.  CARGO[2]  = equipment
  402.  CARGO[3]  = power
  403.  CARGO[4]  = water
  404.        
  405.  ITEM[0]   = credits
  406.  ITEM[1]   = fuel units
  407.  ITEM[2]   = cargo holds
  408.  ITEM[3]   = attack drones
  409.  ITEM[4]   = sector mines
  410.  ITEM[5]   = cloaking energy
  411.  ITEM[6]   = anticloaking energy
  412.  ITEM[7]   = plasma warps
  413.  ITEM[8]   = gate warps
  414.  ITEM[9]   = flash warps
  415.  ITEM[10]  = genesis devices
  416.  ITEM[11]  = planetary probes
  417.  ITEM[12]  = for future use
  418.  
  419.  
  420. ==============================================================================
  421. File.DIR contains the filenames and paths to most of the Ultimate Universe
  422. files. While it is rare that any sysop or home user changes these it is best
  423. to make sure that any third party application has respect for FILE.DIR.
  424.  
  425. Following is a routine showing how FILE.DIR is used:
  426. ─────────────────────────────────────────────────────────────────────────────
  427. extern char pfn[100];
  428. extern int  current_universe;
  429. void get_path(int fd)
  430. {
  431. FILE *stream;
  432. int fx = 0;
  433. static char fname[32][13], fdir[32][60];
  434. if(!fd)
  435.    {
  436.    if((stream=_fsopen("FILE.DIR","rt",SH_DENYNO))==NULL)
  437.       {
  438.       perror("Can't Locate FILE.DIR");
  439.       exit(22);
  440.       }
  441.    while(TRUE)
  442.       {
  443.       if((fscanf(stream,"%s %s",fname[fx] ,fdir[fx]))==EOF) break;
  444.       if(fname[fx++][0]=='~') break;
  445.       }
  446.    fclose(stream);
  447.    return;
  448.    }
  449. strcpy(pfn, fdir[fd]);
  450. strcat(pfn, fname[fd]);
  451. if(fd<=14)
  452.    {
  453.    char conv[12] = {"U123456789"};
  454.    for(fx=0;pfn[fx]!=NULL;fx++) ;
  455.    pfn[fx] = conv[current_universe];
  456.    pfn[++fx] = NULL;
  457.    }
  458. {
  459. ─────────────────────────────────────────────────────────────────────────────
  460.  
  461. get_path should be initialized with "get_path(0)" once before the routine is
  462. initially used. 
  463.  
  464. Each file has a unique "fd" which can be defines as follows:
  465.  
  466. #define  Bank        1
  467. #define  Config      2
  468. #define  Flea        3
  469. #define  Galaxy      4
  470. #define  Hitlist     5
  471. #define  Link        6
  472. #define  Mbeacon     7
  473. #define  Newpaper    8
  474. #define  Planet      9
  475. #define  Port        10
  476. #define  Rank        11
  477. #define  Spy         12
  478. #define  Tally       13
  479. #define  UPS         14
  480. #define  Warzine     15
  481. #define  Bbs         16
  482. #define  Count       17
  483. #define  Cube        18
  484. #define  Device      19
  485. #define  History     20
  486. #define  Id          21
  487. #define  ImportCheck 22
  488. #define  Macro       23
  489. #define  Portname    24
  490. #define  Radio       25
  491. #define  Ship        26
  492. #define  Team        27
  493. #define  What        28
  494. #define  Words       29
  495. #define  WordsIndex  30
  496.  
  497.  
  498. So a call of "get_path(Ship)" would leave string array "pfn" containing the
  499. full path and file name leading to the Ship file.
  500. The name or location of the file should never be assumed.
  501.  
  502. current_universe points to the active dimension.
  503. The active dimension is important to selecting the proper file.
  504. Remember that Shareware versions deal strictly with Dimension 0.
  505. The presence of a dimension can be determined by checking for the existance of
  506. CONFIG.Ux where 'x' is the number of the dimension (or 'U' if dimension 0).
  507.  
  508. ==============================================================================
  509. CONFIG.UU contains all the variables that can be configured by CONFIG.EXE.
  510.  
  511. The format of the Configuration file is as follows:
  512.  
  513. typedef struct
  514.     begin
  515.        char  VAR[30]; : an identifier string for the variable.
  516.        long  VAL;     : the contents of the variable.
  517.     end CONFORM;
  518.  
  519. There are well over 100 variables and I will lay them out below.
  520.  
  521. If you wish to add a variable to CONFIG for use in your application, let me
  522. know and I may consider adding it to CONFIG.EXE.
  523.  
  524. A routine for reading a Config variable would look like this:
  525.  
  526.     long get_config(char *SEARCH)
  527.     begin
  528.     int confg;
  529.     CONFORM CONFIG;
  530.     long VALUE = 0L;
  531.     get_path(Config);
  532.     if((confg=open(pfn,O_RDWR|O_BINARY,S_IWRITE|S_IREAD))==-1) filerror(pfn,1);
  533.     while(VALUE == 0L)
  534.        begin
  535.        if((read(confg, &CONFIG, sizeof(CONFIG)))<1) break;
  536.        if(strcmp(CONFIG.VAR,SEARCH)==0)
  537.       begin
  538.       VALUE = CONFIG.VAL;
  539.       break;
  540.       end
  541.        end
  542.     close(confg);
  543.     return(VALUE);
  544.     end
  545.  
  546.  
  547. *┌───────────────────────────────────────────────────────────────────────────┐
  548. *│ Version & RegNum will be filled in by the game itself.                    │
  549. *└───────────────────────────────────────────────────────────────────────────┘
  550. <VERSION>             160   * The version number
  551.  
  552. <COLOR>                 1   * 0 = B&W,         1 = Color
  553. <ANSI>                  1   * 0 = Remote Viewing Disabled
  554.                 * 1 = Remote Viewing Player Selectable
  555.                 * 2 = Remote Viewing Enabled
  556. <MINUTES>              75   * Minutes Player is Allowed to Play
  557.                 * With BBS set above 0 sets Maximum Playing Time
  558.                 * to the Lower of MINUTES and Time Left on the
  559.                 * Board.
  560. <VIDEO>                 0   * Covers the Method of Screen Writing
  561.                 * 0 = Bios Calls,  1 = Direct to Ram
  562.                 * Should be 0 for most BBSs or less compatible
  563.                 * computers.
  564. <MODEMSIM>              0   * When in Local Mode, MODEMSIM > 1 causes a
  565.                 * delay in output simulating the delay caused
  566.                 * to players. Thus the SYSOP is not granted
  567.                 * an unfair advantage. The greater the number
  568.                 * the greater the delay.
  569. <LOG>                   0   *
  570. <SOUND>               255   * Controls the ticking associated with the
  571.                 * moving of the ship
  572.                 * 0 = Disable
  573.                 * otherwise the frequency of the pitch.
  574. *┌───────────────────────────────────────────────────────────────────────────┐
  575. *│ MAXSECTOR is The number of sectors in the Galaxy                          │
  576. *│ If UUD or the Autopilot runs too slow on your system reduce MAXSECTOR.    │
  577. *│ Memory and Hard disk space are also considerations on this value.         │
  578. *│ MAXSECTOR is only read when UUD RESET is run.                             │
  579. *│ Do not exceed 4000 or it WILL crash your system.                          │
  580. *└───────────────────────────────────────────────────────────────────────────┘
  581.  
  582. <MAXSECTOR>           2000
  583.  
  584. *─────────────────────────────────────────────────────────────────────────────
  585. * MAXPLAYER is The number of players that can play in a given campaign
  586. * Must not exceed 28
  587.  
  588. <MAXPLAYER>             28
  589.  
  590. *─────────────────────────────────────────────────────────────────────────────
  591. * The Colonization function allows expanstion of the Universe
  592. * TRUESECTOR sets the absolute total of sectors the universe might gain.
  593. * Maxsector + 100 is usually sufficient
  594.  
  595. <TRUESECTOR>          3400   * must not exceed 4000
  596.  
  597. *─────────────────────────────────────────────────────────────────────────────
  598. * PLAYS is the number of times per day a player may login
  599.  
  600. <PLAYS>                  5
  601.  
  602. *─────────────────────────────────────────────────────────────────────────────
  603. * INACTIVE is the number of days a player may not play before being removed
  604. * from the game.
  605.  
  606. <INACTIVE>              20
  607.  
  608. *─────────────────────────────────────────────────────────────────────────────
  609. * PORT.PROB sets the density of ports in the universe.
  610. * Setting it to 100 would that each sector had a 100% chance of having a port.
  611. * A Setting of 45 would give a 45% chance.
  612. * The setting should be atleast 1 and shouldn't exceed 99.
  613.  
  614. <PORT.PROB>             43
  615.  
  616. *─────────────────────────────────────────────────────────────────────────────
  617. * WARP.PROB must be a number from 1 to 8 (I would leave it four)
  618. * lowering this number causes less warps between sectors. Raising it causes
  619. * more and increases the chance for natural gate warps.
  620.  
  621. <WARP.PROB>             3     * must be from 1 to 8
  622.  
  623. *─────────────────────────────────────────────────────────────────────────────
  624. * SPY.PROB must be a number from 1 to MAXSECTOR
  625. * lowering this number increases the thoroughness of the spies.
  626. * MAXSECTOR/SPY.PROB is the number of sectors the spies check.
  627.  
  628. <SPY.PROB>            500
  629.  
  630. *─────────────────────────────────────────────────────────────────────────────
  631. * FED_CABAL sets the starting cargo of the Federation & Cabal planets.
  632. * the higher the number the tougher the Fed & Cabal at start.
  633. * Set too low and the players may take the game early on.
  634.  
  635. <HITLIST>              40     * between 2 to 99
  636. <FED_MOVE>         500000     * between 1000 to 10,000,000
  637. <FED_PLANETS>           4     * between 1 to 30
  638. <CABAL_PLANETS>         4     * between 1 to 30
  639. <FEDINIT>         1900000     * should be less than 99,000,000
  640. <CABALINIT>       1900000     * should be less than 99,000,000
  641.  
  642. *─────────────────────────────────────────────────────────────────────────────
  643. * REVERSE_LINK sets the odds of all warps being Plasma Warps as opposed to
  644. * Gate Warps. Do not set below 0 or over 100.
  645. *
  646. <REVERSE_LINK>         85
  647.  
  648. *┌───────────────────────────────────────────────────────────────────────────┐
  649. *│ The Variables RUSSIAN, JACKPOT, BLACKHOLE, LINK.DECAY & LOTTERY           │
  650. *│  are switches that control the inclusion of the random (vs stragic)       │
  651. *│  elements of the game.                                                    │
  652. *│ With these flag set off (0) and XDEVICE 490 added to the bottom of this   │
  653. *│  file most random elements of the will be removed.                        │
  654. *│  Device 490 is the pot luck suprise device.                               │
  655. *└───────────────────────────────────────────────────────────────────────────┘
  656. *RUSSIAN sets the number of days your ship must survive to be eligable to play
  657. *        Russian Roulette.
  658. *RUSSIAN if set to 0 disables Russian Roulette
  659. *RUSSIAN if set to -1 enables Russian Roulette at all times.
  660. *RUSSIAN if set to -2 requires debt to be paid before playing.
  661.  
  662. <RUSSIAN>              -2
  663.  
  664. *─────────────────────────────────────────────────────────────────────────────
  665. *JACKPOT if set to 0 disables Quantum Credits
  666. *JACKPOT if set to 1 allows Quantum Credits but only increments
  667. *         Jackpot when it is played.
  668. *JACKPOT if set to 2 allows Quantum Credits and increments Jackpot daily.
  669.  
  670. <JACKPOT>               2
  671.  
  672. *─────────────────────────────────────────────────────────────────────────────
  673. *BLACKHOLE if set to 0 disables wandering Taakian Blackhole feature
  674. * non zero setting activates it.
  675.  
  676. <BLACKHOLE>             2
  677.  
  678. *─────────────────────────────────────────────────────────────────────────────
  679. *WILDFIRE sets the Activity level of the FEDERATION, CABAL, ANTI war.
  680. *Setting WILDFIRE to 1 causes a very active war and dramatically increases
  681. *the time UUD takes to run after a few days.
  682. *Setting WILDFIRE to 0 sets normal war mode.
  683.  
  684. <WILDFIRE>              1
  685.  
  686. *─────────────────────────────────────────────────────────────────────────────
  687. *FINES set credit value for various fines.
  688. *
  689. <FINE.DRONE>          100
  690. <FINE.MINE>          2500
  691. <FINE.GENESIS>     100000
  692. <FINE.REPORT>         450
  693. <FINE.POPPER>       25000
  694. <FINE.HOLE>       5000000
  695.  
  696. *─────────────────────────────────────────────────────────────────────────────
  697. *LINK.DECAY sets the maximum number of warp links that may decay during UUD.
  698. *LINK.CREATE sets the maximum number of warps links that may appear during UUD.
  699. *a value of zero disables either function.
  700.  
  701. <LINK.CREATE>           42
  702. <LINK.DECAY>            35
  703.  
  704. *─────────────────────────────────────────────────────────────────────────────
  705. *LOTTERY if set to 0 disables the opening day lottery feature.
  706. * if set to 1 enables the lottery for the first logon of the day.
  707. * if set to 2 enables the lottery for the first 2 logons of the day.
  708. * etc.
  709.  
  710. <LOTTERY>               3
  711.  
  712. *─────────────────────────────────────────────────────────────────────────────
  713. *MADNESS sets age deferment for SPACE MADNESS
  714. *
  715. <MADNESS>               3
  716.  
  717. *┌───────────────────────────────────────────────────────────────────────────┐
  718. *│ START. Variables control the amounts that a ship contains when created.   │
  719. *│  Care should be taken that the value does not exceed the corresponding    │
  720. *│  LIMIT. variable.                                                         │
  721. *└───────────────────────────────────────────────────────────────────────────┘
  722.  
  723. <START.HOLDS>         500     * limit 32000
  724. <START.CREDIT>    4000000     * limit 2,000,000,000
  725. <START.FIGHTER>      1000     * limit 2,000,000,000
  726. <START.MINES>           0     * limit 1,000,000
  727. <START.CLOAK>           1     * limit 2,000,000,000
  728. <START.ACLOAK>          0     * limit 2,000,000,000
  729. <START.TURNS>         200     * limit 32000
  730. <START.WARP1>           0     * limit 32000
  731. <START.WARP2>           0     * limit 32000
  732. <START.WARP3>           5     * limit 32000
  733. <START.GENESIS>         1     * limit 32000
  734. <START.PPROBE>          1     * limit 32000
  735.  
  736. * the number of device bays
  737.  
  738. <START.BAY>            26     * limit 32
  739. <START.PORT6>      300000     * Maximum Cost of Free First Device at Port 6
  740.                   * limit LIMIT.CREDIT
  741. *─────────────────────────────────────────────────────────────────────────────
  742. * if START.DEVICE = device number (1-500) ship starts out with that device
  743. * if START.DEVICE = 0 ship starts out with no device
  744.  
  745. <START.DEVICE1>       251     * invalid device number will cause weirdness
  746. <START.DEVICE2>       490     * 490 IS A POT LUCK SURPRISE
  747. <START.DEVICE3>       240     * check ports 6 + 8 for other numbers to use
  748. <START.DEVICE4>         0     * run CONCOMP if you change this later
  749. <START.DEVICE5>         0
  750.  
  751. *┌───────────────────────────────────────────────────────────────────────────┐
  752. *│ LIMIT. Variables control the amounts that a ship can contain.             │
  753. *│  Care should be taken that the value is NOT less than the corresponding   │
  754. *│  START. variable.               (see above START.LIMITS)                  │
  755. *└───────────────────────────────────────────────────────────────────────────┘
  756.  
  757. <LIMITBAY>             32     * limit 32
  758. <LIMITHOLD>         60000     * limit 32760
  759. <LIMITTURN>           500     * limit 32000
  760. <LIMITCREDIT>  1000000000     * limit 2,000,000,000
  761. <LIMITFIGHTER> 2000000000     * limit 2,000,000,000
  762. <LIMITMINE>        500000     * limit 2,000,000,000
  763. <LIMITCLOAK>    100000000     * agrueable but I wouldn't pass 100000000
  764.                   * will get weird if multi-enhancers push
  765.                   * value past 2,000,000,000
  766. <LIMITACLOAK>   100000000     * ditto
  767. <LIMITWARP1>         4000     * limit 32000
  768. <LIMITWARP2>         4000     * limit 32000
  769. <LIMITWARP3>          200     * limit 32000
  770. <LIMITGENESIS>         25     * limit 32000
  771. <LIMITPPROBE>         100     * limit 32000
  772.  
  773. * LIMITWSHIELD sets the Maximum erg level for a Warp Shield
  774.  
  775. <LIMITWSHIELD>      30000     * limit 32000
  776.  
  777. *─────────────────────────────────────────────────────────────────────────────
  778. * PRO variables set the planet production rates
  779. *     lowering the values increases the daily production
  780. *     do not set the value to less than 1 or higher than 32000
  781. *     This is hard to explain so adjusting it by trial and error is best.
  782. *     You can change these any time and run CONCOMP if you dont like them.
  783.  
  784. <PRO.DRONE>            30     * attack drones
  785. <PRO.MINE>           7510     * sector mines
  786. <PRO.CLOAK>          1300     * cloaking energy
  787. <PRO.ACLOAK>         4700     * anticloaking energy
  788. <PRO.NULL>          16197     * warp shield nullifiers
  789. <PRO.SHIELD>         8983     * warp shield energy
  790. <PRO.FLASH>         14020     * flash warps
  791.  
  792. *─────────────────────────────────────────────────────────────────────────────
  793. * PRL variables set the maximum planet production rates
  794. *     avoid extremes
  795.  
  796. <PRL.CARGO>     200000000     * ORE, ORG etc.
  797. <PRL.DRONE>     200000000     * attack drones
  798. <PRL.MINE>          22000     * sector mines
  799. <PRL.CLOAK>       3500000     * cloaking energy
  800. <PRL.ACLOAK>      3500000     * anticloaking energy
  801. <PRL.NULL>          15000     * warp shield nullifiers
  802. <PRL.SHIELD>        15000     * warp shield energy
  803. <PRL.FLASH>            50     * flash warps
  804.  
  805. *┌───────────────────────────────────────────────────────────────────────────┐
  806. *│ The following variables set up the destructiveness of Sector Mines.       │
  807. *└───────────────────────────────────────────────────────────────────────────┘
  808. * MINE_DAMAGE_RANDOM is the random part of a sector mine blast
  809. * MINE_DAMAGE_BASE   is the fixed part of a sector mine blast
  810. * blast = (rand % MINE_DAMAGE_RANDOM)+MINE_DAMAGE_BASE
  811.  
  812. <MINE_DAMAGE_RANDOM> 2000     * limit 20000
  813. <MINE_DAMAGE_BASE>    500     * limit 20000
  814.  
  815. *┌───────────────────────────────────────────────────────────────────────────┐
  816. *│ MARS. variables set the initializing values for the Mars Port (Port 2)    │
  817. *└───────────────────────────────────────────────────────────────────────────┘
  818. * MARS.MAXBET sets the opening maximum bet at the Mars Port (Sector 2)
  819.  
  820. <MARS.MAXBET>      500000     * limit 1,000,000,000
  821.  
  822. * MARS.COFFER sets the coffer at the Mars Port
  823.  
  824. <MARS.COFFER>    30000000     * limit 1,000,000,000
  825.  
  826. *┌───────────────────────────────────────────────────────────────────────────┐
  827. *│ Newspaper sets the number of days the Galactic Newspaper will be kept     │
  828. *│ when UUD is run.                                                          │
  829. *└───────────────────────────────────────────────────────────────────────────┘
  830.  
  831. <NEWSPAPER>             3     * limit 99
  832.  
  833. *┌───────────────────────────────────────────────────────────────────────────┐
  834. *│ IMPORT and EXPORT set whether or not Importing and Exporting Ships is     │
  835. *│ allowable on in your universe.                                            │
  836. *│ These functions are only allowable on Registered versions and have no     │
  837. *│ effect on Shareware versions.                                             │
  838. *│                                                                           │
  839. *│ If IMPORT is set to 1 Importation of outside ships is enabled.            │
  840. *│ If EXPORT is set to 1 Exportation of Ships is enabled.                    │
  841. *│ A setting of 0 disables either function.                                  │
  842. *└───────────────────────────────────────────────────────────────────────────┘
  843.  
  844. <IMPORT>                1
  845. <EXPORT>                0
  846. <IMPSECTOR>             0
  847.  
  848. *┌───────────────────────────────────────────────────────────────────────────┐
  849. *│ XDEVICE causes the device number listed to be be outlawed in the game     │
  850. *│ multiple XDEVICES can be listed                                           │
  851. *│ This would be useful in two situations. Say that a device is causing      │
  852. *│ the Sysops board to crash. It is traced to device #108 (the number used   │
  853. *│ to purchase the device). The Sysop then sets up XDEVICE 108 and all is    │
  854. *│ well. Or, a group of players find that device number 450 makes the game   │
  855. *│ less exciting. After complaining to the Sysop, the Sysop agrees and       │
  856. *│ sets XDEVICE 450.                                                         │
  857. *└───────────────────────────────────────────────────────────────────────────┘
  858.  
  859. <XDEVICE0>               0
  860. <XDEVICE1>               0
  861. <XDEVICE2>               0
  862. <XDEVICE3>               0
  863. <XDEVICE4>               0
  864. <XDEVICE5>               0
  865. <XDEVICE6>               0 
  866. <XDEVICE7>               0 
  867. <XDEVICE8>               0 
  868. <XDEVICE9>               0 
  869. *─────────────────────────────────────────────────────────────────────────────
  870.  
  871. <END>                    0
  872.  
  873.  
  874.  
  875. Ultimate Universe Interactive (UUI)
  876. ==============================================================================
  877.  
  878. Starting in Ultimate Universe 1.60 I have begun to include data hooks for
  879. the creation of 3rd Party Terminal (Assist) programs.
  880.  
  881. Note: All codes that follow require that each keystroke be within 2 seconds
  882.       of each other otherwise control returns to the program.
  883.  
  884. UUI is enabled by send the program a '~|', to which it will respond with
  885. either a '!!' (UUI not yet enabled) or a '++' (UUI enabled).
  886.  
  887. The Enable command must then be followed by a UUI command which takes the
  888.     following form: '~~[xx' where xx is UUI COMMAND MODULE.
  889.     COMMAND MODULES are explained below.
  890.  
  891.  
  892. ----------------------------------------------------------------------------
  893. UUI Enable
  894.  
  895.  
  896. Initiate: ~|
  897. Responce: !!       - UUI not yet enabled
  898.           ++       - UUI waiting for command
  899. Command : ~~[xx    - Where xx is one of the following:
  900.                            DN, SD, SF, SI, ST, VR.
  901.  
  902. ----------------------------------------------------------------------------
  903. DN (Device Name)
  904.  
  905. Send   : xxx  (where xxx is a 3 digit device number (ie. 066 = Spy Ward))
  906. Returns: 'Time Out' if more than 2 secs between degits of device number
  907.            or
  908.          Value of device number sent
  909.          Device Number (If invalid device number sent this will be 0)
  910.          Name of Device
  911.          Price of Device
  912.          Passive or Active Flag (1 = Active Device)
  913.          Number of Units available for Purchase in this Dimension.
  914.  
  915. ----------------------------------------------------------------------------
  916. SD (SHIP DEVICES)
  917.  
  918. Returns: SD
  919.          Number of Bays (N)
  920.          Device1 Device1-Variable1 Device1-Variable2
  921.          Device2 Device2-Variable1 Device2-Variable2
  922.          ...
  923.          DeviceN DeviceN-Variable1 DeviceN-Variable2
  924.          Ship Enhancement Type
  925.          FSA Device 1  ; ignore this data is SHIP Enhancement
  926.          FSA Device 2  ; Type is not a Forward Sensor Array (Type 1).
  927.          ...
  928.          FSA Device 8
  929.          SD
  930.  
  931. ----------------------------------------------------------------------------
  932. SF (SHIP FORWARD)
  933.  
  934. Returns: SF
  935.          Units of Ore Cargo
  936.          Units of Organic Cargo
  937.          Units of Equipment Cargo
  938.          Units of Power Cargo
  939.          Units of Water Cargo
  940.          Number of credits
  941.          Amount of fuel
  942.          Number of Cargo holds
  943.          Number of Attack Drones
  944.          Number of Sector Mines
  945.          Number of Cloaking Ergs
  946.          Number of Anti-Cloaking Ergs
  947.          Number of Plasma Warps
  948.          Number of Gate Warps
  949.          Number of Flash Warps
  950.          Number of Genesis Devices
  951.          Number of Planetary probes
  952.          Number for future use
  953.          Current Federation Fines
  954.          Federation Debt Due
  955.          Number of Cabal Mines Destroyed
  956.          Number of Cabal Drones Killed
  957.          Device Number of Pending UPS shipment
  958.          SF
  959.  
  960. ----------------------------------------------------------------------------
  961. SI (SHIP INFORMATION)
  962.  
  963. Returns: SI
  964.          Sector Ship is Currnetly In    ;If 0 Ship is Destroyed
  965.          Current Dimension Number
  966.          Ship Name
  967.          Number of Seconds left Today
  968.          Number of Seconds left this Session
  969.          Amount of Fuel Left
  970.          Number of Times Ship Has Played Today
  971.          Seconds Sensors are Damaged for
  972.          Federation Hostility State    (0 if not Hostile)
  973.          Ship's Computer Damage Status (0 if not Damaged)
  974.          Ship's Space Madness Level
  975.          SI
  976.  
  977. ----------------------------------------------------------------------------
  978. ST (SHIP's Team Name)
  979.  
  980. Returns: ST
  981.          Team Name Ship is a Member of. 'None' if not a member of a team.
  982.          ST
  983.  
  984. ----------------------------------------------------------------------------
  985. VR (Get Config Variable Value)
  986.  
  987.  
  988. Send   : <config variable name>
  989. Returns: Value of Config Variable
  990.          'Time Out' if more than 2 secs between characters of variable label
  991.          'Label Too Long' if Label is more than 38 Characters.
  992.          0 is returned on Invalid Label (This may also be a correct value).
  993.  
  994.  
  995.